package com.zhongwang.mms.module.jiaGongStorage.model;


import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhongwang.mms.base.BaseModel;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
@Data
public class JStorageInventory extends BaseModel {
    private Integer ityId;
    /**
     * 物料编码
     * 联合主键：用来验证是update还是insert
     */
    private String ityMatCode;
    /**
     * 物料描述
     */
    private String ityMatDesc;
    /**
     * 项目号
     * 联合主键：用来验证是update还是insert
     */
    private String ityProCode;
    /**
     * 项目名称
     * 联合主键：用来验证是update还是insert
     */
    private String ityProName;
    /**
     * 所属部位信息
     */
    private String ityPart;
    /**
     * 数量
     */
    private Double ityNum;
    /**
     * 重量
     */
    private Double ityWeight;
    /**
     * 可用数量
     */
    private Double ityAvaNum;
    /**
     * 可用重量
     */
    private Double ityAvaWeight;
    /**
     * 数量单位
     */
    private String ityNumUnit;
    /**
     * 重量单位
     */
    private String ityWeightUnit;
    /**
     * 未知
     */
    private Double ityPrice;
    /**
     * 库存金额
     */
    private Double ityAmount;
    /**
     * 品牌
     */
    private String ityBrand;
    /**
     * 规格型号
     * 联合主键：用来验证是update还是insert
     */
    private String itySat;
    /**
     * 仓位
     * 出库或入库仓位
     */
    private String ityPosition;
    /**
     * 库位
     * 出入库库位
     */
    private Integer ityWhiId;
    /**
     * SAP物料编码
     */
    private String itySapCode;
    /**
     * 跟踪号
     * 联合主键：用来验证是update还是insert
     */
    private String ityTrackCode;
    /**
     * 备注
     */
    private String ityRemark;
    /**
     * 记账日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")//这个是限制日期格式的
    @DateTimeFormat(value = "yyyy-MM-dd")//这个是限制日期格式的
    private Date ityBookkeepingDate;
    /**
     * 外键：入库单明细行号，依赖外购件库入库单明细主键。
     */
    private Integer ityRowNo;
    /**
     * 在库类型：1是库存在库，2是项目在库
     */
    private Integer ityStockType;
    /**
     * 机械备件库类型
     */
    private Date ityStorageDate;
    /**
     * 0或者NULL代表非与串料有关，1代表由于串料生成的库存信息，2代表被串料的库存信息，3代表着包括1号位2两种情况。
     */
    private Integer ityChangeFlag;
    /**
     * 0或者NULL代表非与库存划项目有关，1代表由于库存划项目生成的库存信息，2代表被库存划项目的库存信息，3代表着包括1号位2两种情况。
     */
    private Integer ityInvProFlag;
    /**
     * 0或者NULL代表调整过，1代表被调整过。
     */
    private Integer ityAdjustFlag;
    /**
     * 0或者NULL代表非与项目划库存有关，1代表由于项目化库存生成的库存信息，2代表被项目化库存的库存信息，3代表着包括1号位2两种情况。
     */
    private Integer ityProInvFlag;
    /**
     * 0或者NULL代表没有台账信息，1代表拥有台账信息。
     */
    private Integer ityMaterielInfoFlag;
    /**
     * 0或者NULL代表没有附件信息，1代表拥有附件信息。
     */
    private Integer ityAnnexFlag;
    /**
     * 祖先项目号:串料时记录祖先物料的项目号
     */
    private String ityAncestorsProCode;
    /**
     * 祖先跟踪码：串料时记录祖先物料的跟踪码
     */
    private String ityAncestorsTrackCode;
    /**
     * 祖宗库存所剩物料
     */
    private Double ityAncestorsNum;
    /**
     * 级别：null或0是根级
     */
    private Integer ityAncestorsLevel;
    /**
     * 身份：null是祖宗，trunk是树干，leaf是树叶
     */
    private String ityAncestorsIdentity;
    /**
     * 机械备件库类型
     */
    private String ityRemarkType;
    /**
     * 供应商
     */
    private String supplier;
    /**
     * 合同编号
     */
    private String contractNo;
    private Integer ityDataStatus;
    /**
     * 调整原因
     */
    private String adjReason;


    private Integer odaId;

    private Integer odaRushId;

    private Integer odaOdrId;

    private Integer odaType;

    private String odaProCode;

    private String odaProName;

    private String odaPart;

    private String odaMatCode;

    private String odaMatDesc;

    private Double odaNum;

    private Double odaWeight;

    private String odaPosition;

    private Integer odaWhiId;

    private String odaNumUnit;

    private String odaWeightUnit;

    private Double odaTotalPrice;

    private String odaBrand;

    private String odaSat;

    private String odaRemark;

    private String odaBackDate;

    private String odaSapCode;

    private String odaTrackCode;

    private Integer odaItyId;

    private String odaPurCode;

    private String odaSupplier;

    private String odaPlanDept;

    private Integer odaRedFlag;

    private Date odaRedDate;

    private String odaRedUser;

    private Double odaNumPrice;

    private Double odaWeightPrice;

    private String odaSpec;
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date odaBookkeepingDate;

    private String odaTakeType;

    private Integer odaOutWhiId;

    private Integer odaInWhiId;
    private String odaStockTypeText;

    private Integer proId;

    private String proCode;

    private String proName;

    private Integer proNum;

    private Integer proProductionStatus;

    private String proProductionStatusMultiple;

    private String proPart;

    private Integer whiId;

    private String whiCode;

    private String whiName;

    private String whiAddress;

    private String whiRemark;

    private Integer depId;

    private String depName;

    private Integer depOrderNo;

    private Integer depStatus;

    private Integer depPid;

    private Date depCreateTime;

    private String ityIds;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date odrMakeDate;


    private Integer odrId;

    private String odrCode;

    private Integer odrType;

    private Integer odrRedFlag;

    private Integer odrChangeFlag;

    private Integer odrReqFlag;
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")//这个是限制日期格式的
    @DateTimeFormat(value = "yyyy-MM-dd")//这个是限制日期格式的
    private Date odrDate;

    private String odrTakePerson;

    private String odrRemark;



    private Integer odrTakeWorkshopId;

    private Integer odrMakePersonId;

    private Integer odrAdjustFlag;

    private Integer odrOutType;

    private Integer odrDept;

    /**
     * 项目编号
     */
    private String code;
    /**
     * 项目名称
     */
    private String name;
    /**
     * 项目数量
     */
    private String num;
    /**
     * 外购件总数
     */
    private Integer purCount;
    /**
     * 该项目外购件总金额
     */
    private BigDecimal totalAmount;



    /**
     * 机械备件库备注类型
     */
    private String odaRemarkType;
    /**
     * 辅助
     */
    private String ityWhiIds;
    /**
     * 页面标题
     */
    private String title;
    /**
     * 临时表名
     */
    private String tempTableName;

//新建的字段：



    /**
     * 虚拟字段，检索用
     * 单据类型
     */
    @ExcelIgnore
    private Integer billType;

    /**
     * 虚拟字段，页面显示使用：
     * 单据类型
     */
    @ExcelProperty(value = "单据类型", index = 0)
    private String billTypeText;

    /**
     * 虚拟字段，页面显示使用：
     * 制单人
     */
    @ExcelIgnore
    private String odrMakePerson;

    /**
     * 虚拟字段，检索用
     * 制单开始日期
     */
    @ExcelIgnore
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")//这个是限制日期格式的
    private Date pStartDate;

    /**
     * 虚拟字段，检索用
     * 制单结束日期
     */
    @ExcelIgnore
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")//这个是限制日期格式的
    private Date pEndDate;

    /**
     * 查询字段，页面查询使用：物料信息
     */
    @ExcelIgnore
    private String odaMatAll;

    /**
     * 出入库类型
     */
    private Integer inOutType;


    /**
     * 访问来源
     */
    private String mode;
    /**
     * 临时表前多少条数据
     */
    private Integer topCount;
    /**
     * 临时表不包含的前多少条数据
     */
    private Integer notHaveTopCount;

}